﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ue.Eagle.Runtime.Models
{
    public class PluginDescriptor
    {
        public PluginDescriptor(string id, string name, string authore, string version, string description, IEnumerable<PluginExtensionPoint> extensionPoints, IEnumerable<PluginExtension> extensions, string location)
        {
            this.Id = id;
            this.Name = name;
            this.Author = authore;
            this.Version = version;
            this.Description = description;
            this.ExtensionPoints = extensionPoints;
            this.Extensions = extensions;
            this.Location = location;
        }

        /// <summary>
        /// 插件Id，就是插件项目AssemblyFullName
        /// </summary>
        public string Id { get; private set; }

        /// <summary>
        /// 插件名
        /// </summary>
        public string Name { get; private set; }

        /// <summary>
        /// 作者
        /// </summary>
        public string Author { get; private set; }

        /// <summary>
        /// 版本
        /// </summary>
        public string Version { get; private set; }

        /// <summary>
        /// 插件描述
        /// </summary>
        public string Description { get; private set; }

        /// <summary>
        /// 插件的扩展点
        /// </summary>
        public IEnumerable<PluginExtensionPoint> ExtensionPoints { get; private set; }

        /// <summary>
        /// 插件所实现的扩展（注：注意不是当前插件扩展点的扩展。而是当前插件的扩展，这些扩展有可能是其它插件扩展点的扩展）
        /// </summary>
        public IEnumerable<PluginExtension> Extensions { get; private set; }

        /// <summary>
        /// 位置
        /// </summary>
        public string Location { get; private set; }
    }
}
